﻿/***************************************************************
 * 开发人员：网魂小兵@http://www.mozlite.com
 * 
 * 目标标本：4.0.30319.239
 * 
 * 最后修改：2011/12/2 23:29:47
 * ************************************************************/
namespace Mozlite.Common
{
    using System;
    using System.Linq;
    using System.Text;
    using System.Collections.Generic;
    using Mozlite.Data;
    using System.Data.Common;

    /// <summary>
    /// 论坛数据库提供者。
    /// </summary>
    public abstract class ForumDataProvider : ProviderBase<ForumDataProvider>
    {
        /// <summary>
        /// 初始化类<see cref="T:Mozlite.Common.ForumDataProvider"/>。
        /// </summary>
        /// <param name="factory">数据库提供者工厂类。</param>
        protected ForumDataProvider(DbProviderFactory factory) : base(factory) { }

        /// <summary>
        /// 保存论坛。
        /// </summary>
        /// <param name="forum">论坛实例对象。</param>
        /// <returns>返回论坛状态。</returns>
        public abstract CreateForumStatus SaveForum(Forum forum);
        /// <summary>
        /// 删除论坛。
        /// </summary>
        /// <param name="forumID">论坛ID。</param>
        /// <param name="settingsID">网站设置ID。</param>
        /// <returns>返回论坛删除状态。</returns>
        public abstract CreateForumStatus DeleteForum(int forumID, int settingsID);
        /// <summary>
        /// 加载论坛列表。
        /// </summary>
        /// <param name="settingsID">网站设置ID。</param>
        /// <returns>返回论坛列表。</returns>
        public abstract Dictionary<string, Forum> LoadForums(int settingsID);
        /// <summary>
        /// 获取论坛实例对象。
        /// </summary>
        /// <param name="forumID">论坛ID。</param>
        /// <param name="key">论坛键。</param>
        /// <param name="settingsID">网站设置ID。</param>
        /// <returns>返回论坛实例对象。</returns>
        public abstract Forum GetForum(int forumID, string key, int settingsID);
    }
}